/**
 * 消息类型常量
 */
export class MessageType {
  // 通知类型
  static readonly NOTICE_TYPE_SYSTEM = 0
  static readonly NOTICE_TYPE_USER = 1

  // 消息类型
  static readonly TYPE_TEAM = 0
  static readonly TYPE_PROJECT = 1
  static readonly TYPE_TASK = 2
  static readonly TYPE_REQUIREMENT = 3
  static readonly TYPE_BUG = 4
  /**
   * 获取通知类型文本
   * @param noticeType 通知类型代码
   * @returns 通知类型文本
   */
  static getNoticeTypeText(noticeType?: number): string {
    switch (noticeType) {
      case this.NOTICE_TYPE_SYSTEM:
        return '系统'
      case this.NOTICE_TYPE_USER:
        return '用户'
      default:
        return '未知'
    }
  }

  /**
   * 获取消息类型文本
   * @param type 消息类型代码
   * @returns 消息类型文本
   */
  static getTypeText(type?: number): string {
    switch (type) {
      case this.TYPE_TEAM:
        return '团队'
      case this.TYPE_PROJECT:
        return '项目'
      case this.TYPE_TASK:
        return '任务'
      case this.TYPE_REQUIREMENT:
        return '需求'
      case this.TYPE_BUG:
        return '缺陷'
      default:
        return '未知'
    }
  }

  /**
   * 获取通知类型样式
   * @param noticeType 通知类型代码
   * @returns 样式类名
   */
  static getNoticeTypeClass(noticeType?: number): string {
    switch (noticeType) {
      case this.NOTICE_TYPE_SYSTEM:
        return 'system'
      case this.NOTICE_TYPE_USER:
        return 'user'
      default:
        return 'default'
    }
  }

  /**
   * 获取消息类型样式
   * @param type 消息类型代码
   * @returns 样式类名
   */
  static getTypeClass(type?: number): string {
    switch (type) {
      case this.TYPE_TEAM:
        return 'team'
      case this.TYPE_PROJECT:
        return 'project'
      case this.TYPE_TASK:
        return 'task'
      case this.TYPE_COMMENT:
        return 'comment'
      default:
        return 'default'
    }
  }
}
